package com.code.google.mdsc.io.csv;

import java.io.File;

import com.code.google.mdsc.model.Booking;

public interface CSVBookingParser {

	/**
	 * Parses a file which is valid to the specification:
	 * 
	 * The first line includes the creditor data like this:
	 * <p/>
	 * <code>creditorIdentifier,creditorCountry,name,bic,iban,adress,
	 * dateOfBooking</code>
	 * <p/>
	 * After that, the debtor data is initialized by a "#" character.
	 * <p/>
	 * <code>#</code>
	 * <p/>
	 * The following lines of debtor data are structured like this:
	 * <p/>
	 * <code>accountHolder,bookingvolumne,bic,iban,mandatoryNumber,purpose,mandatorySignatureDate</code>
	 * 
	 * @param in
	 *            the input file. It must not be <code>null</code>.
	 * 
	 * @return a list containing the parsed {@link Debtor} objects. It may be
	 *         empty.
	 * 
	 * @throws CSVParserException
	 *             if something went wrong during the parsing procedure.
	 */
	public Booking parse(File in);
}
